import 'dart:io';

void main() {
  print('开始执行main函数');
  getNetworkData().then((value) {
    // then方法执行  成功时候执行的方法
    print('then方法执行'+value);
    // 捕获异常
  }).catchError((e) {
    // print('错误信息'+e); //写法错误  不允许添加
    // 打印异常
    print(e);
    // whenComplete完成状态
  }).whenComplete(() {
    print('whenComplete完成后执行');
});

  print('这是不能被阻塞的代码');
}

Future<String> getNetworkData() {
  return Future<String>(() {
    sleep(Duration(seconds: 3));
    // 不再返回结果，而是出现异常
    // return '返回的网络数据';

    // 主动制造错误   throw Exception   抛出异常  Exception异常
    throw Exception('网络请求出现错误');
  });
}
